package com.atcumt.Thread.print;

/**
 * CAS 实现交替打印
 * 比较的过程不满足，返回false，并且一直在那自旋等待
 */
public class testPrint03 {

    static int i = 0;
    static int t = 1; // 标识位

    public static void main(String[] args) {
        new Thread(() -> {
            while (i < 9) {
                while (t != 1) {
                    // 自旋等待
                }
                System.out.println(Thread.currentThread().getName() + "---" + (++i));
                t = 2; // 修改 t 的值
            }
        }).start();

        new Thread(() -> {
            while (i < 9) {
                while (t != 2) {
                    // 自旋等待
                }
                System.out.println(Thread.currentThread().getName() + "---" + (++i));
                t = 1; // 修改 t 的值
            }
        }).start();
    }
}
